Encoding / Decoding System and Method

ABSTRACT

A computer-implemented method, computer program product and computing system for: encoding an unencoded data file to generate a related encoded data file based upon a plurality of mappings to a plurality of portions of a dictionary file; receiving a request to manipulate the unencoded data file, wherein the request would require a first sequence of operations to be performed on the unencoded data file; and processing the related encoded data file based, at least in part, upon the plurality of mappings and the dictionary file to generate a modified encoded data file, wherein processing the related encoded data file includes performing the first sequence of operations on the encoded data file to achieve the requested manipulations of the unencoded data file.

RELATED APPLICATION(S)

This application claims the benefit of U.S. Provisional ApplicationNo(s): 63/256,267 filed on 15 Oct. 2021, and 63/272,539 filed on 27 Oct.2021, the entire contents of which are incorporated herein by reference.

TECHNICAL FIELD

This disclosure relates to data encoding and, more particularly, tosystems and methods that allow for the processing of encoded datawithout the need for decoding.

BACKGROUND

Data may be encoded and decoded to transform the data from a first formto a second form to achieve a certain task. One example of such encodingmay be data compression, wherein data is transformed from a first form(e.g., a larger form) to a second form (e.g., a smaller form) to achievethe task of saving storage space. Another example of such encoding maybe data encryption, wherein data is transformed from a first form (e.g.,an unencrypted form) to a second form (e.g., an encrypted form) toachieve the task of securing the data.

Unfortunately and when using such encoded data (e.g., accessing thedata, manipulating the data), the encoded data would first need to bedecoded (e.g., decompressed/decrypted), then used (e.g.,accessed/manipulated), and then reencoded (compressed/encrypted). Ascould be imagined, such decoding and subsequent reencoding is expensivefrom a computational and availability point of view.

Summary of Disclosure

In one implementation, a computer-implemented method is executed on acomputing device and includes: encoding an unencoded data file togenerate a related encoded data file based upon a plurality of mappingsto a plurality of portions of a dictionary file; receiving a request tomanipulate the unencoded data file, wherein the request would require afirst sequence of operations to be performed on the unencoded data file;and processing the related encoded data file based, at least in part,upon the plurality of mappings and the dictionary file to generate amodified encoded data file, wherein processing the related encoded datafile includes performing the first sequence of operations on the encodeddata file to achieve the requested manipulations of the unencoded datafile.

One or more of the following features may be included. Processing therelated encoded data file based, at least in part, upon the plurality ofmappings and the dictionary file to generate a modified encoded datafile may include: performing a homomorphic encoding operation. Thedictionary file may include a plurality of discrete entries. Processingthe related encoded data file based, at least in part, upon theplurality of mappings and the dictionary file to generate a modifiedencoded data file may include: processing the related encoded data file,in a byte-wise fashion, based upon the plurality of mappings and thedictionary file to generate a modified encoded data file. The dictionaryfile may include a plurality of concatenated entries. Processing therelated encoded data file based, at least in part, upon the plurality ofmappings and the dictionary file to generate a modified encoded datafile may include: processing the related encoded data file, in abit-wise fashion, based upon the plurality of mappings and thedictionary file to generate a modified encoded data file. Processing therelated encoded data file based, at least in part, upon the plurality ofmappings and the dictionary file to generate a modified encoded datafile may include: processing the related encoded data file, utilizing asampling window, based upon the plurality of mappings and the dictionaryfile to generate a modified encoded data file. The requestedmanipulations may concern one or more of: a computation operation; asearch operation; an append operation; a splitting operation; a joiningoperation; and a concatenating operation. Encoding an unencoded datafile to generate a related encoded data file based upon a plurality ofmappings to a plurality of portions of a dictionary file may include:compressing an unencoded data file to generate a related encoded datafile. Encoding an unencoded data file to generate a related encoded datafile based upon a plurality of mappings to a plurality of portions of adictionary file may include: encrypting an unencoded data file togenerate a related encoded data file.

In another implementation, a computer program product resides on acomputer readable medium and has a plurality of instructions stored onit. When executed by a processor, the instructions cause the processorto perform operations including: encoding an unencoded data file togenerate a related encoded data file based upon a plurality of mappingsto a plurality of portions of a dictionary file; receiving a request tomanipulate the unencoded data file, wherein the request would require afirst sequence of operations to be performed on the unencoded data file;and processing the related encoded data file based, at least in part,upon the plurality of mappings and the dictionary file to generate amodified encoded data file, wherein processing the related encoded datafile includes performing the first sequence of operations on the encodeddata file to achieve the requested manipulations of the unencoded datafile.

One or more of the following features may be included. Processing therelated encoded data file based, at least in part, upon the plurality ofmappings and the dictionary file to generate a modified encoded datafile may include: performing a homomorphic encoding operation. Thedictionary file may include a plurality of discrete entries. Processingthe related encoded data file based, at least in part, upon theplurality of mappings and the dictionary file to generate a modifiedencoded data file may include: processing the related encoded data file,in a byte-wise fashion, based upon the plurality of mappings and thedictionary file to generate a modified encoded data file. The dictionaryfile may include a plurality of concatenated entries. Processing therelated encoded data file based, at least in part, upon the plurality ofmappings and the dictionary file to generate a modified encoded datafile may include: processing the related encoded data file, in abit-wise fashion, based upon the plurality of mappings and thedictionary file to generate a modified encoded data file. Processing therelated encoded data file based, at least in part, upon the plurality ofmappings and the dictionary file to generate a modified encoded datafile may include: processing the related encoded data file, utilizing asampling window, based upon the plurality of mappings and the dictionaryfile to generate a modified encoded data file. The requestedmanipulations may concern one or more of: a computation operation; asearch operation; an append operation; a splitting operation; a joiningoperation; and a concatenating operation. Encoding an unencoded datafile to generate a related encoded data file based upon a plurality ofmappings to a plurality of portions of a dictionary file may include:compressing an unencoded data file to generate a related encoded datafile. Encoding an unencoded data file to generate a related encoded datafile based upon a plurality of mappings to a plurality of portions of adictionary file may include: encrypting an unencoded data file togenerate a related encoded data file.

In another implementation, a computing system includes a processor andmemory is configured to perform operations including: encoding anunencoded data file to generate a related encoded data file based upon aplurality of mappings to a plurality of portions of a dictionary file;receiving a request to manipulate the unencoded data file, wherein therequest would require a first sequence of operations to be performed onthe unencoded data file; and processing the related encoded data filebased, at least in part, upon the plurality of mappings and thedictionary file to generate a modified encoded data file, whereinprocessing the related encoded data file includes performing the firstsequence of operations on the encoded data file to achieve the requestedmanipulations of the unencoded data file.

One or more of the following features may be included. Processing therelated encoded data file based, at least in part, upon the plurality ofmappings and the dictionary file to generate a modified encoded datafile may include: performing a homomorphic encoding operation. Thedictionary file may include a plurality of discrete entries. Processingthe related encoded data file based, at least in part, upon theplurality of mappings and the dictionary file to generate a modifiedencoded data file may include: processing the related encoded data file,in a byte-wise fashion, based upon the plurality of mappings and thedictionary file to generate a modified encoded data file. The dictionaryfile may include a plurality of concatenated entries. Processing therelated encoded data file based, at least in part, upon the plurality ofmappings and the dictionary file to generate a modified encoded datafile may include: processing the related encoded data file, in abit-wise fashion, based upon the plurality of mappings and thedictionary file to generate a modified encoded data file. Processing therelated encoded data file based, at least in part, upon the plurality ofmappings and the dictionary file to generate a modified encoded datafile may include: processing the related encoded data file, utilizing asampling window, based upon the plurality of mappings and the dictionaryfile to generate a modified encoded data file. The requestedmanipulations may concern one or more of: a computation operation; asearch operation; an append operation; a splitting operation; a joiningoperation; and a concatenating operation. Encoding an unencoded datafile to generate a related encoded data file based upon a plurality ofmappings to a plurality of portions of a dictionary file may include:compressing an unencoded data file to generate a related encoded datafile. Encoding an unencoded data file to generate a related encoded datafile based upon a plurality of mappings to a plurality of portions of adictionary file may include: encrypting an unencoded data file togenerate a related encoded data file.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features andadvantages will become apparent from the description, the drawings, andthe claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagrammatic view of a distributed computing networkincluding a computing device that executes an encoding/decoding processaccording to an embodiment of the present disclosure;

FIG. 2 is a diagrammatic view of various pieces of content accessible bythe encoding/decoding process of FIG. 1 according to an embodiment ofthe present disclosure;

FIG. 3 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure;

FIG. 4 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure;

FIG. 5 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure;

FIG. 6 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure;

FIG. 7 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure;

FIG. 8 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure;

FIG. 9 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure;

FIG. 10 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure;

FIG. 11 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure;

FIG. 12 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure;

FIG. 13 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure;

FIG. 14 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure;

FIG. 15 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure;

FIG. 16 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure;

FIG. 17 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure;

FIG. 18 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure; and

FIG. 19 is a flowchart of the encoding/decoding process of FIG. 1according to an embodiment of the present disclosure.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

System Overview

Referring to FIG. 1 , there is shown encoding/decoding process 10.Encoding/decoding process 10 may be implemented as a server-sideprocess, a client-side process, or a hybrid server-side/client-sideprocess. For example, encoding/decoding process 10 may be implemented asa purely server-side process via encoding/decoding process 10 s.Alternatively, encoding/decoding process 10 may be implemented as apurely client-side process via one or more of encoding/decoding process10 c 1, encoding/decoding process 10 c 2, encoding/decoding process 10 c3, and encoding/decoding process 10 c 4. Alternatively still,encoding/decoding process 10 may be implemented as a hybridserver-side/client-side process via encoding/decoding process 10 s incombination with one or more of encoding/decoding process 10 c 1,encoding/decoding process 10 c 2, encoding/decoding process 10 c 3, andencoding/decoding process 10 c 4. Accordingly, encoding/decoding process10 as used in this disclosure may include any combination ofencoding/decoding process 10 s, encoding/decoding process 10 c 1,encoding/decoding process 10 c 2, encoding/decoding process 10 c 3, andencoding/decoding process 10 c 4.

Encoding/decoding process 10 s may be a server application and mayreside on and may be executed by computing device 12, which may beconnected to network 14 (e.g., the Internet or a local area network).Examples of computing device 12 may include, but are not limited to: apersonal computer, a server computer, a series of server computers, amini computer, a mainframe computer, a smartphone, or a cloud-basedcomputing platform.

The instruction sets and subroutines of encoding/decoding process 10 s,which may be stored on storage device 16 coupled to computing device 12,may be executed by one or more processors (not shown) and one or morememory architectures (not shown) included within computing device 12.Examples of storage device 16 may include but are not limited to: a harddisk drive; a RAID device; a random access memory (RAM); a read-onlymemory (ROM); and all forms of flash memory storage devices.

Network 14 may be connected to one or more secondary networks (e.g.,network 18), examples of which may include but are not limited to: alocal area network; a wide area network; or an intranet, for example.

Examples of encoding/decoding processes 10 c 1, 10 c 2, 10 c 3, 10 c 4may include but are not limited to a web browser, a game console userinterface, a mobile device user interface, or a specialized application(e.g., an application running on e.g., the Android™ platform, the iOS™platform, the Windows™ platform, the Linux™ platform or the UNIX™platform). The instruction sets and subroutines of encoding/decodingprocesses 10 c 1, 10 c 2, 10 c 3, 10 c 4, which may be stored on storagedevices 20, 22, 24, 26 (respectively) coupled to client electronicdevices 28, 30, 32, 34 (respectively), may be executed by one or moreprocessors (not shown) and one or more memory architectures (not shown)incorporated into client electronic devices 28, 30, 32, 34(respectively). Examples of storage devices 20, 22, 24, 26 may includebut are not limited to: hard disk drives; RAID devices; random accessmemories (RAM); read-only memories (ROM), and all forms of flash memorystorage devices.

Examples of client electronic devices 28, 30, 32, 34 may include, butare not limited to, a smartphone (not shown), a personal digitalassistant (not shown), a tablet computer (not shown), laptop computers28, 30, 32, personal computer 34, a notebook computer (not shown), aserver computer (not shown), a gaming console (not shown), and adedicated network device (not shown). Client electronic devices 28, 30,32, 34 may each execute an operating system, examples of which mayinclude but are not limited to Microsoft Windows™, Android™, iOS™,Linux™, or a custom operating system.

Users 36, 38, 40, 42 may access encoding/decoding process 10 directlythrough network 14 or through secondary network 18. Further,encoding/decoding process 10 may be connected to network 14 throughsecondary network 18, as illustrated with link line 44.

The various client electronic devices (e.g., client electronic devices28, 30, 32, 34) may be directly or indirectly coupled to network 14 (ornetwork 18). For example, laptop computer 28 and laptop computer 30 areshown wirelessly coupled to network 14 via wireless communicationchannels 44, 46 (respectively) established between laptop computers 28,30 (respectively) and cellular network/bridge 48, which is showndirectly coupled to network 14. Further, laptop computer 32 is shownwirelessly coupled to network 14 via wireless communication channel 50established between laptop computer 32 and wireless access point (i.e.,WAP) 52, which is shown directly coupled to network 14. Additionally,personal computer 34 is shown directly coupled to network 18 via ahardwired network connection.

WAP 52 may be, for example, an IEEE 802.11a, 802.11b, 802.11g, 802.11n,Wi-Fi, and/or Bluetooth device that is capable of establishing wirelesscommunication channel 50 between laptop computer 32 and WAP 52. As isknown in the art, IEEE 802.11x specifications may use Ethernet protocoland carrier sense multiple access with collision avoidance (i.e.,CSMA/CA) for path sharing. As is known in the art, Bluetooth is atelecommunications industry specification that allows e.g., mobilephones, computers, and personal digital assistants to be interconnectedusing a short-range wireless connection.

Encoding/Decoding Process

Referring also to FIG. 2 and as will be discussed below in greaterdetail, encoding/decoding process 10 may be configured to allow for theencoding and subsequent decoding of data (e.g., first data file 100).Examples of such encoding/decoding may include but are not limited to:compression/decompression and encryption/decryption. Further and as willbe discussed below in greater detail, encoding/decoding process 10 maybe configured to allow for the manipulation of such encoded data (e.g.,compressed data and/or encrypted data) without the need to first decode(e.g., decompress and/or decrypt) the encoded data.

-   -   Compression/Decompression: As is known in the art, data        compression (or source coding or bit-rate reduction) is the        process of encoding information using fewer bits than the        original representation. Any particular compression is either        lossy or lossless. Lossless compression reduces bits by        identifying and eliminating statistical redundancy. No        information is lost in lossless compression. Lossy compression        reduces bits by removing unnecessary or less important        information. Typically, a device that performs data compression        is referred to as an encoder, and one that performs the reversal        of the process (decompression) as a decoder. The process of        reducing the size of a data file is often referred to as data        compression. In the context of data transmission, it is called        source coding; encoding done at the source of the data before it        is stored or transmitted. Compression is useful because it        reduces the resources required to store and transmit data.        Computational resources are consumed in the compression and        decompression processes. Data compression is subject to a        space—time complexity trade-off. For instance, a compression        scheme for video may require expensive hardware for the video to        be decompressed fast enough to be viewed as it is being        decompressed, and the option to decompress the video in full        before watching it may be inconvenient or require additional        storage. The design of data compression schemes involves        trade-offs among various factors, including the degree of        compression, the amount of distortion introduced (when using        lossy data compression), and the computational resources        required to compress and decompress the data.    -   Encryption/Decryption: As is known in the art, data encryption        is the process of encoding information, wherein the process        converts the original representation of the information (known        as plaintext), into an alternative form (known as ciphertext).        Ideally, only authorized parties can decipher a ciphertext back        to plaintext and access the original information. Encryption        does not itself prevent interference but denies the intelligible        content to a would-be interceptor. For technical reasons, an        encryption scheme usually uses a pseudo-random encryption key        generated by an algorithm. It is possible to decrypt the message        without possessing the key but, for a well-designed encryption        scheme, considerable computational resources and skills are        required. An authorized recipient can easily decrypt the message        with the key provided by the originator to recipients but not to        unauthorized users. Historically, various forms of encryption        have been used to aid in cryptography. Early encryption        techniques were often used in military messaging. Since then,        new techniques have emerged and become commonplace in all areas        of modern computing. Modern encryption schemes use the concepts        of public-key and symmetric-key and may ensure security because        modern computers are inefficient at cracking the encryption.

The following discussion concerns a system overview of encoding/decodingprocess 10.

Referring also to FIG. 3 , encoding/decoding process 10 may encode 200 afirst data file (e.g., first data file 100) to generate a relatedencoded data file (e.g., related encoded data file 102) based, at leastin part, upon a plurality of mappings (e.g., plurality of mappings 104)to a plurality of portions of a dictionary file (e.g., dictionary file106).

This first data file (e.g., first data file 100) may essentially be anytype of data file, examples of which may include but are not limited to:a first compressed data file; a first uncompressed data file; a firstencrypted data file; a first unencrypted data file; a first encoded datafile; and a first unencoded data file.

As will be discussed below in greater detail, each of the plurality ofmappings (e.g., plurality of mappings 104) may include a startinglocation and a length that points to a particular portion of thedictionary file (e.g., dictionary file 106). One example of suchmappings may include but is not limited to <IJ> pairs, wherein the “I”is indicative of the starting location (within dictionary file 106) andthe “J” is indicative of the length of the data being pointed to. Aswill be discussed below in greater detail, the dictionary file (e.g.,dictionary file 106) may include a plurality of discrete entries or aplurality of concatenated entries.

Generally speaking, the dictionary file (e.g., dictionary file 106) mayfunction as a cipher that effectuates the encoding/decoding of firstdata file 100. In one non-limiting example, the dictionary file (e.g.,dictionary file 106) may include all of the possible combinations of anumber that have a defined bit length, wherein this defined bit lengthmay vary depending upon the design criteria of encoding/decoding process10.

For illustrative purposes only, assume that dictionary file 106 includesentries having a defined bit length of four bits. As is known in theart, a four-bit entry has 2⁴ possible values, namely:

-   -   0000 (binarily representing a decimal value of 0)    -   0001 (binarily representing a decimal value of 1)    -   0010 (binarily representing a decimal value of 2)    -   0011 (binarily representing a decimal value of 3)    -   0100 (binarily representing a decimal value of 4)    -   0101 (binarily representing a decimal value of 5)    -   0110 (binarily representing a decimal value of 6)    -   0111 (binarily representing a decimal value of 7)    -   1000 (binarily representing a decimal value of 8)    -   1001 (binarily representing a decimal value of 9)    -   1010 (binarily representing a decimal value of 10)    -   1011 (binarily representing a decimal value of 11)    -   1100 (binarily representing a decimal value of 12)    -   1101 (binarily representing a decimal value of 13)    -   1110 (binarily representing a decimal value of 14)    -   1111 (binarily representing a decimal value of 15)

Accordingly, dictionary file 106 may include entries that define each ofthe above-described sixteen possible values. While the above-describedexample concerns a dictionary file 106 including entries having adefined bit length of four bits, this is for illustrative purposes onlyand is not intended to be a limitation of this disclosure, as otherconfigurations are possible and are considered to be within the scope ofthis disclosure. Further, it is likely that the entries defined withindictionary file 106 may have a defined bit length greater than four bits(e.g., 8 bits, 16 bits, 32 bits, 64 bits).

As stated above, the dictionary file (e.g., dictionary file 106) mayinclude a plurality of discrete entries or a plurality of concatenatedentries.

When the dictionary file (e.g., dictionary file 106) includes aplurality of discrete entries, dictionary file 106 may be configured asfollows:

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 11011110 1111

-   -   wherein each entry within the dictionary file (e.g., dictionary        file 106) is separated (e.g., by a black space, a comma, or a        slash), thus resulting in (in this example) sixteen discrete        entries.

When the dictionary file (e.g., dictionary file 106) includes aplurality of concatenated entries, dictionary file 106 may be configuredas follows:

0000000100100011010001010110011110001001101010111100110111101111

-   -   wherein each entry within the dictionary file (e.g., dictionary        file 106) is not separated, thus resulting in (in this example)        sixteen concatenated entries coupled end-to-end to form (in this        example) a single sixty-four bit dictionary file.

As discussed above, each of the plurality of mappings (e.g., pluralityof mappings 104) may include a starting location and a length thatpoints to a particular portion of the dictionary file (e.g., dictionaryfile 106), wherein one such example of these mappings may include but isnot limited to <IJ> pairs.

Assume that the first data file 100 to be encoded is:

-   -   0111 1011 1001 1111

Accordingly, when encoding/decoding process 10 encodes 200 first datafile 100, the resulting encoded data file (e.g., related encoded datafile 102) generated may include four mappings (e.g., plurality ofmappings 104) that map to the appropriate portions of dictionary file106. Specifically:

-   -   a first mapping <28/4> that defines an offset of 28 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 0111 within dictionary file 106;    -   a second mapping <44/4> that defines an offset of 44 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1011 within dictionary file 106;    -   a third mapping <36/4> that defines an offset of 36 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1001 within dictionary file 106; and a        fourth mapping <60/4> that defines an offset of 60 bits from the        beginning of dictionary file 106 and a read length of 4 bits,        thus mapping to 1111 within dictionary file 106.

Accordingly and in the above stated example, when encoding/decodingprocess 10 encodes 200 first data file 100 (e.g., 0111 1011 1001 1111),the resulting encoded data file (e.g., related encoded data file 102)generated may include four mappings (e.g., <28/4><44/4><36/4><60/4>).Accordingly and through the use of these four mappings (i.e., relatedencoded data file 102), first data file 100 may be decoded by using thisplurality of mappings (.e., plurality of mappings 104) to regeneratefirst data file 100. Specifically:

-   -   the first mapping <28/4> within related encoded data file 102        may be utilized by encoding/decoding process 10 to obtain from        dictionary file 106 the data portion that is being pointed to by        this mapping, namely the data portion 0111 within dictionary        file 106;    -   the second mapping <44/4> within related encoded data file 102        may be utilized by encoding/decoding process 10 to obtain from        dictionary file 106 the data portion that is being pointed to by        this mapping, namely the data portion 1011 within dictionary        file 106;    -   the third mapping <36/4> within related encoded data file 102        may be utilized by encoding/decoding process 10 to obtain from        dictionary file 106 the data portion that is being pointed to by        this mapping, namely the data portion 1001 within dictionary        file 106; and    -   the fourth mapping <60/4> within related encoded data file 102        may be utilized by encoding/decoding process 10 to obtain from        dictionary file 106 the data portion that is being pointed to by        this mapping, namely the data portion 1111 within dictionary        file 106.

Accordingly and through the use of dictionary file 106 and plurality ofmappings 104 included within related encoded data file 102, first datafile 100 may be obtained.

When encoding 200 a first data file (e.g., first data file 100) togenerate a related encoded data file (e.g., related encoded data file102) based, at least in part, upon a plurality of mappings (e.g.,plurality of mappings 104) to a plurality of portions of a dictionaryfile (e.g., dictionary file 106), encoding/decoding process 10 may:compress 202 an unencoded data file (e.g., first data file 100) togenerate the related encoded data file (e.g., related encoded data file102); and/or encrypt 204 an unencoded data file (e.g., first data file100) to generate the related encoded data file (e.g., related encodeddata file 102).

Encoding/decoding process 10 may receive 206 a request (e.g., request160) to manipulate the first data file (e.g., first data file 100),wherein the requested manipulations may concern one or more of: acomputation operation; a search operation; an append operation; asplitting operation; a joining operation; and a concatenating operation.

As is known in the art:

-   -   a computation operation may include but is not limited to a        requested operation to mathematically manipulate the first data        file (e.g., first data file    -   a search operation may include but is not limited to a requested        operation to search the first data file (e.g., first data file        100);    -   an append operation may include but is not limited to a        requested operation to add to (i.e., append) the first data file        (e.g., first data file 100);    -   a splitting operation may include but is not limited to a        requested operation to divide (i.e., split) the first data file        (e.g., first data file 100);    -   a joining operation may include but is not limited to a        requested operation to join the first data file (e.g., first        data file 100) with one or more other data files (not shown);        and    -   a concatenating operation may include but is not limited to a        requested operation to combine the first data file (e.g., first        data file 100) with another data file (not shown).

Encoding/decoding process 10 may then process 208 the related encodeddata file (e.g., related encoded data file 102) based, at least in part,upon the plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the first data file (e.g., first datafile 100).

As discussed above, encoding/decoding process 10 may be configured toallow for the manipulation of such encoded data (e.g., compressed dataand/or encrypted data) without the need to first decode (e.g.,decompress and/or decrypt) the encoded data (e.g., compressed dataand/or encrypted data).

Continuing with the above stated example, assume that encoding/decodingprocess 10 encodes 200 first data file 100 (e.g., 0111 1011 1001 1111)into related encoded data file 102 (e.g., <28/4><44/4><36/4><60/4>).Further, assume that encoding/decoding process 10 receives 206 a request(e.g., request 160) to add twenty-seven to first data file 100 (e.g.,0111 1011 1001 1111).

Accordingly and when processing 208 the related encoded data file (e.g.,related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the first data file (e.g., first datafile 100), encoding/decoding process 10 may utilize the mappings withinthe related encoded data file (e.g., related encoded data file 102) toobtain the appropriate data portions within dictionary file 106. It isimportant to note that such a processing 208 operation does not requirethe manipulation/modification/decoding of the related encoded data file(e.g., related encoded data file 102); all that is required is that themappings 104 within the related encoded data file 102 be read so thatthe related data portions can be obtained from the dictionary file(e.g., dictionary file 106).

Accordingly and when processing 208 the related encoded data file (e.g.,related encoded data file 102):

-   -   the first mapping <28/4> within related encoded data file 102        may be utilized by encoding/decoding process 10 to obtain from        dictionary file 106 the data portion that is being pointed to by        this mapping, namely the data portion 0111 within dictionary        file 106;    -   the second mapping <44/4> within related encoded data file 102        may be utilized by encoding/decoding process 10 to obtain from        dictionary file 106 the data portion that is being pointed to by        this mapping, namely the data portion 1011 within dictionary        file 106;    -   the third mapping <36/4> within related encoded data file 102        may be utilized by encoding/decoding process 10 to obtain from        dictionary file 106 the data portion that is being pointed to by        this mapping, namely the data portion 1001 within dictionary        file 106; and    -   the fourth mapping <60/4> within related encoded data file 102        may be utilized by encoding/decoding process 10 to obtain from        dictionary file 106 the data portion that is being pointed to by        this mapping, namely the data portion 1111 within dictionary        file 106.

Accordingly and through the use of dictionary file 106 and plurality ofmappings 104 included within related encoded data file 102, first datafile 100 (e.g., 0111 1011 1001 1111) may be obtained. Once obtained,encoding/decoding process 10 may perform the manipulation defined withinthe request (e.g., request 160) received 206.

In this particular illustrative example, the request (e.g., request 160)received 206 concerned adding twenty-seven to first data file 100 (e.g.,0111 1011 1001 1111). As is known in the art, the sixteen-bitrepresentation of twenty-seven is 0000 0000 0001 1011. Accordingly andwhen processing 208 the related encoded data file (e.g., related encodeddata file 102), encoding/decoding process 10 may add 0000 0000 0001 1011to 0111 1011 1001 1111 (i.e., first data file 100) and get the result0111 1011 1011 1010 (e.g., result 110).

When processing 208 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the first data file (e.g., first data file 100),encoding/decoding process 10 may: perform 210 a homomorphic encodingoperation and/or a heteromorphic encoding operation on e.g., result 110.

As discussed above and when processing 208 the related encoded data file(e.g., related encoded data file 102), encoding/decoding process 10 maydefine result 110 (e.g., 0111 1011 1011 1010), wherein result 110 may beencoded via a homomorphic or heteromorphic encryption process. Forexample, if encoding/decoding process 10 encodes result 110 using thesame encoding procedure that was used to encode first data file 100,this may be referred to as performing 210 a homomorphic encodingoperation on result 110 (as both encoding operations are the same).Conversely, if encoding/decoding process 10 encodes result 110 using adifferent encoding procedure than that used to encode first data file100, this may be referred to as performing 210 a heteromorphic encodingoperation on result 110 (as the encoding operations are different).

Further and when processing 208 the related encoded data file (e.g.,related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the first data file (e.g., first datafile 100), encoding/decoding process 10 may:

-   -   process 212 the related encoded data file (e.g., related encoded        data file 102), in a byte-wise fashion, based upon the plurality        of mappings (e.g., plurality of mappings 104) and the dictionary        file (e.g., dictionary file 106) to generate a modified encoded        data file (e.g., modified encoded data file 108) that represents        the requested manipulations of the first data file (e.g., first        data file 100);    -   process 214 the related encoded data file (e.g., related encoded        data file 102), in a bit-wise fashion, based upon the plurality        of mappings (e.g., plurality of mappings 104) and the dictionary        file (e.g., dictionary file 106) to generate a modified encoded        data file (e.g., modified encoded data file 108) that represents        the requested manipulations of the first data file (e.g., first        data file 100); and/or    -   process 216 the related encoded data file (e.g., related encoded        data file 102), utilizing a sampling window, based upon the        plurality of mappings (e.g., plurality of mappings 104) and the        dictionary file (e.g., dictionary file 106) to generate a        modified encoded data file (e.g., modified encoded data file        108) that represents the requested manipulations of the first        data file (e.g., first data file 100).

Assume that encoding/decoding process 10 encodes result 110 (e.g., 01111011 1011 1010) using the same encoding procedure that was used toencode first data file 100 (namely using dictionary file 106).Accordingly and when encoding result 110 (e.g., 0111 1011 1011 1010) togenerate modified encoded data file 108, encoding/decoding process 10may scan result 110 (e.g., 0111 1011 1011 1010) to define mappings thatpoint to the various portions of result 110 (e.g., 0111 1011 1011 1010)within dictionary file 106.

As discussed above, the dictionary file (e.g., dictionary file 106)includes entries, that define each of the above-described sixteenpossible values, namely:

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 11011110 1111

Accordingly and when encoding/decoding process 10 scans result 110(e.g., 0111 1011 1011 1010) to define mappings that point to the variousportions of result 110 (e.g., 0111 1011 1011 1010) within dictionaryfile 106, encoding/decoding process 10 may define the following mappingsfor inclusion within modified encoded data file 108:

-   -   a first mapping <28/4> that defines an offset of 28 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 0111 within    -   a second mapping <44/4> that defines an offset of 44 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1011 within dictionary file 106;    -   a third mapping <44/4> that defines an offset of 36 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1011 within dictionary file 106; and    -   a fourth mapping <40/4> that defines an offset of 60 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1010 within dictionary file 106.

Accordingly, encoding/decoding process 10 may utilize dictionary file106 to encode result 110 (e.g., 0111 1011 1011 1010) into modifiedencoded data file 108 that includes the above-described plurality ofmappings (e.g., <28/4><44/4><44/4><40/4>).

As discussed above, encoding/decoding process 10 may scan result 110(e.g., 0111 1011 1011 1010) to define mappings that point to the variousportions of result 110 (e.g., 0111 1011 1011 1010) within dictionaryfile 106. And when performing such a scanning operation,encoding/decoding process 10 may process 216 the related encoded datafile (e.g., related encoded data file 102) utilizing a sampling window,wherein the sampling window may define the size (e.g., in bits or bytes)of the portion of dictionary file that is being scanned for matches with(in this example) result 110. In the example described above, thesampling window is four bits. However, this is for illustrative purposesonly and is not intended to be a limitation of this disclosure, as otherconfigurations are possible and are considered to be within the scope ofthis disclosure. For example, the window may be larger (e.g., 8 bit, 16bit, 32 bit, 64 bit), which would result in less frequent matches butgreat benefits when a match is found). Conversely, the window may besmaller (e.g., 2), which would result in more frequent matches but lessbenefits when a match is found).

And when performing such a scanning operation, encoding/decoding process10 may process 214 the related encoded data file (e.g., related encodeddata file 102) in a bit-wise fashion, where the above-described samplingwindow is shifted a bit at a time between scans. Conversely and whenprocessing 212 the related encoded data file (e.g., related encoded datafile 102) in a byte-wise fashion, the above-described sampling window isshifted a bit at a time between scans.

In computer programming, a bit-wise operation operates on a bit string,a bit array or a binary numeral (considered as a bit string) at thelevel of its individual bits. It is a fast and simple action, basic tothe higher-level arithmetic operations and directly supported by theprocessor. Most bit-wise operations are presented as two-operandinstructions where the result replaces one of the input operands.Conversely, a byte-wise operation operates on a bit string, a bit arrayor a binary numeral (considered as a bit string) at the level of bytes(i.e., a group of bits). On simple low-cost processors, typically,bit-wise operations are substantially faster than division, severaltimes faster than multiplication, and sometimes significantly fasterthan addition. While modern processors usually perform addition andmultiplication just as fast as bit-wise operations due to their longerinstruction pipelines and other architectural design choices, bit-wiseoperations do commonly use less power because of the reduced use ofresources.

The following discussion concerns a more focused view ofencoding/decoding process 10. Referring also to FIG. 4 ,encoding/decoding process 10 may encode 250 an unencoded data file(e.g., first data file 100) to generate a related encoded data file(e.g., related encoded data file 102) based, at least in part, upon aplurality of mappings (e.g., plurality of mappings 104) to a pluralityof portions of a dictionary file (e.g., dictionary file 106).

As discussed above, when encoding 250 an unencoded data file (e.g.,first data file 100) to generate a related encoded data file (e.g.,related encoded data file 102) based, at least in part, upon a pluralityof mappings (e.g., plurality of mappings 104) to a plurality of portionsof a dictionary file (e.g., dictionary file 106), encoding/decodingprocess 10 may: compress 252 an unencoded data file (e.g., first datafile 100) to generate a related encoded data file (e.g., related encodeddata file 102); and/or encrypt 254 an unencoded data file (e.g., firstdata file 100) to generate a related encoded data file (e.g., relatedencoded data file 102).

As discussed above, encoding/decoding process 10 may receive 256 arequest (e.g., request 160) to manipulate the unencoded data file (e.g.,first data file 100), wherein the requested manipulations may concernone or more of: a computation operation; a search operation; an appendoperation; a splitting operation; a joining operation; and aconcatenating operation. In the example discussed above, the request(e.g., request 160) received 256 concerned adding twenty-seven to firstdata file 100.

As discussed above, encoding/decoding process 10 may process 258 therelated encoded data file (e.g., related encoded data file 102) based,at least in part, upon the plurality of mappings (e.g., plurality ofmappings 104) and the dictionary file (e.g., dictionary file 106) togenerate a modified encoded data file (e.g., modified encoded data file108) that represents the requested manipulations of the unencoded datafile (e.g., first data file 100). In the example discussed above,encoding/decoding process 10 utilized plurality of mappings 104 anddictionary file 106 to generate result 110, which was subsequentlyencoded to generate modified encoded data file 108.

As discussed above, when processing 258 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100), encoding/decoding process 10 may: perform 260 a homomorphicencoding operation and/or a heteromorphic encoding operation.

As discussed above, when processing 258 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100), encoding/decoding process 10 may:

-   -   process 262 the related encoded data file (e.g., related encoded        data file 102), in a byte-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);    -   process 264 the related encoded data file (e.g., related encoded        data file 102), in a bit-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);        and/or    -   process 266 the related encoded data file (e.g., related encoded        data file 102), utilizing a sampling window to generate modified        encoded data file 108 (e.g., in the manner described above).

The following discussion concerns an overview of mapping withinencoding/decoding process 10. Referring also to FIG. 5 ,encoding/decoding process 10 may receive 300 an unencoded data file(e.g., first data file 100).

Encoding/decoding process 10 may process 302 the unencoded data file(e.g., first data file 100) to identify a plurality of file segments(e.g., plurality of file segments 112). As discussed in the exampleabove, this first data file (e.g., first data file 100) is:

-   -   0111 1011 1001 1111

Accordingly and in this example, plurality of file segments 112 includesfour file segments, namely a) 0111, b) 1011, c) 1001 and d) 1111.Encoding/decoding process 10 may map 304 each of the plurality of filesegments (e.g., plurality of file segments 112) to a portion of adictionary file (e.g., dictionary file 106), thus generating a pluralityof mappings (e.g., plurality of mappings 104), wherein each of theplurality of mappings (e.g., plurality of mappings 104) may include astarting location and a length.

As discussed above, one example of such mappings may include but is notlimited to:

-   -   a first mapping <28/4> that defines an offset of 28 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 0111 within dictionary file 106;    -   a second mapping <44/4> that defines an offset of 44 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1011 within dictionary file 106;    -   a third mapping <36/4> that defines an offset of 36 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1001 within dictionary file 106; and    -   a fourth mapping <60/4> that defines an offset of 60 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1111 within dictionary file 106.

Encoding/decoding process 10 may then generate 306 a related encodeddata file (e.g., related encoded data file 102) based, at least in part,upon the plurality of mappings (e.g., plurality of mappings 104). Asdiscussed above and in this example, the related encoded data file(e.g., related encoded data file 102) may include four mappings (e.g.,<28/4><44/4><36/4><60/4>).

As discussed above, when generating 306 a related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104),encoding/decoding process 10 may: generate 308 a related compressed datafile based, at least in part, upon the plurality of mappings (e.g.,plurality of mappings 104); and/or generate 310 a related encrypted datafile based, at least in part, upon the plurality of mappings (e.g.,plurality of mappings 104).

Encoding/decoding process 10 may receive 312 a request (e.g., request160) to manipulate the unencoded data file (e.g., first data file 100),wherein the requested manipulations may concern one or more of: acomputation operation; a search operation; an append operation; asplitting operation; a joining operation; and a concatenating operation.In the example discussed above, the request (e.g., request 160) received312 concerned adding twenty-seven to first data file 100.

Encoding/decoding process 10 may process 314 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100). In the example discussed above, encoding/decoding process 10utilized plurality of mappings 104 and dictionary file 106 to generateresult 110, which was subsequently encoded to generate modified encodeddata file 108.

As discussed above, when processing 314 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100), encoding/decoding process 10 may: perform 316 a homomorphicencoding operation; and/or a heteromorphic encoding operation.

When processing 314 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may:

-   -   process 318 the related encoded data file (e.g., related encoded        data file 102), in a byte-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);    -   process 320 the related encoded data file (e.g., related encoded        data file 102), in a bit-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);        and/or    -   process 322 the related encoded data file (e.g., related encoded        data file 102), utilizing a sampling window to generate modified        encoded data file 108 (e.g., in the manner described above).

The following discussion concerns an overview of homomorphic encodingwithin encoding/decoding process 10. Referring also to FIG. 6 ,encoding/decoding process 10 may encode 350 an unencoded data file(e.g., first data file 100) to generate a related encoded data file(e.g., related encoded data file 102) based upon a plurality of mappings(e.g., plurality of mappings 104) to a plurality of portions of adictionary file (e.g., dictionary file 106).

As discussed above, when encoding 350 an unencoded data file (e.g.,first data file 100) to generate a related encoded data file (e.g.,related encoded data file 102) based upon a plurality of mappings (e.g.,plurality of mappings 104) to a plurality of portions of a dictionaryfile (e.g., dictionary file 106), encoding/decoding process 10 may:compress 352 an unencoded data file (e.g., first data file 100) togenerate a related encoded data file (e.g., related encoded data file102).

When encoding 350 an unencoded data file (e.g., first data file 100) togenerate a related encoded data file (e.g., related encoded data file102) based upon a plurality of mappings (e.g., plurality of mappings104) to a plurality of portions of a dictionary file (e.g., dictionaryfile 106), encoding/decoding process 10 may: encrypt 354 an unencodeddata file (e.g., first data file 100) to generate a related encoded datafile (e.g., related encoded data file 102).

Encoding/decoding process 10 may receive 356 a request (e.g., request160) to manipulate the unencoded data file (e.g., first data file 100),wherein the request (e.g., request 160) would require a first sequenceof operations to be performed on the unencoded data file (e.g., firstdata file 100). The requested manipulations may concern one or more of:a computation operation; a search operation; an append operation; asplitting operation; a joining operation; and a concatenating operation.In the example discussed above, the request (e.g., request 160) received356 concerned adding twenty-seven to first data file 100.

Encoding/decoding process 10 may process 358 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108), whereinprocessing the related encoded data file (e.g., related encoded datafile 102) may include performing the first sequence of operations on theencoded data file to achieve the requested manipulations of theunencoded data file (e.g., first data file 100). In the examplediscussed above, encoding/decoding process 10 utilized plurality ofmappings 104 and dictionary file 106 to generate result 110, which wassubsequently encoded to generate modified encoded data file 108.

As discussed above, when processing 358 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108),encoding/decoding process 10 may: perform 360 a homomorphic encodingoperation.

When processing 358 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108), encoding/decoding process 10 may:

-   -   process 362 the related encoded data file (e.g., related encoded        data file 102), in a byte-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);    -   process 364 the related encoded data file (e.g., related encoded        data file 102), in a bit-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);        and/or    -   process 366 the related encoded data file (e.g., related encoded        data file 102), utilizing a sampling window to generate modified        encoded data file 108 (e.g., in the manner described above).

The following discussion concerns an overview of heteromorphic encodingwithin encoding/decoding process 10. Referring also to FIG. 7 ,encoding/decoding process 10 may encode 400 an unencoded data file(e.g., first data file 100) to generate a related encoded data file(e.g., related encoded data file 102) based upon a plurality of mappings(e.g., plurality of mappings 104) to a plurality of portions of adictionary file (e.g., dictionary file 106).

As discussed above, when encoding 400 an unencoded data file (e.g.,first data file 100) to generate a related encoded data file (e.g.,related encoded data file 102) based upon a plurality of mappings (e.g.,plurality of mappings 104) to a plurality of portions of a dictionaryfile (e.g., dictionary file 106), encoding/decoding process 10 may:compress 402 an unencoded data file (e.g., first data file 100) togenerate a related encoded data file (e.g., related encoded data file102).

When encoding 400 an unencoded data file (e.g., first data file 100) togenerate a related encoded data file (e.g., related encoded data file102) based upon a plurality of mappings (e.g., plurality of mappings104) to a plurality of portions of a dictionary file (e.g., dictionaryfile 106), encoding/decoding process 10 may: encrypt 404 an unencodeddata file (e.g., first data file 100) to generate a related encoded datafile (e.g., related encoded data file 102).

Encoding/decoding process 10 may receive 406 a request (e.g., request160) to manipulate the unencoded data file (e.g., first data file 100),wherein the request (e.g., request 160) would require a first sequenceof operations to be performed on the unencoded data file (e.g., firstdata file 100). The requested manipulations may concern one or more of:a computation operation; a search operation; an append operation; asplitting operation; a joining operation; and a concatenating operation.In the example discussed above, the request (e.g., request 160) received406 concerned adding twenty-seven to first data file 100.

Encoding/decoding process 10 may process 408 the related encoded datafile (e.g., related encoded data file 102) based upon the plurality ofmappings (e.g., plurality of mappings 104) and the dictionary file(e.g., dictionary file 106) to generate a modified encoded data file(e.g., modified encoded data file 108), wherein processing the relatedencoded data file (e.g., related encoded data file 102) may includeperforming a second sequence of operations on the encoded data file toachieve the requested manipulations of the unencoded data file (e.g.,first data file 100). In the example discussed above, encoding/decodingprocess 10 utilized plurality of mappings 104 and dictionary file 106 togenerate result 110, which was subsequently encoded to generate modifiedencoded data file 108.

As this is a heteromorphic encoding operation, the second sequence ofoperations cannot be identical to the first sequence of operations, asthat would yield a homomorphic encoding operation. Accordingly, thissecond sequence of operations may be dissimilar (or only partiallysimilar) to the first sequence of operations, as this is a heteromorphicencoding operation.

As discussed above, when processing 408 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108),encoding/decoding process 10 may: perform 410 a heteromorphic encodingoperation.

When processing 408 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108), encoding/decoding process 10 may:

-   -   process 412 the related encoded data file (e.g., related encoded        data file 102), in a byte-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);    -   process 414 the related encoded data file (e.g., related encoded        data file 102), in a bit-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);        and/or    -   process 416 the related encoded data file (e.g., related encoded        data file 102), utilizing a sampling window to generate modified        encoded data file 108 (e.g., in the manner described above).

The following discussion concerns a use case for encoding/decodingprocess 10 concerning encoded data in transit. Referring also to FIG. 8, encoding/decoding process 10 may process 450 an unencoded data file(e.g., first data file 100) to identify a plurality of file segments(e.g., plurality of file segments 112).

As discussed in the example above, this first data file (e.g., firstdata file 100) is:

-   -   0111 1011 1001 1111

Accordingly and in this example, plurality of file segments 112 includesfour file segments, namely a) 0111, b) 1011, c) 1001 and d) 1111.

Encoding/decoding process 10 may map 452 each of the plurality of filesegments (e.g., plurality of file segments 112) to a portion of adictionary file (e.g., dictionary file 106) to generate a plurality ofmappings (e.g., plurality of mappings 104), wherein each of theplurality of mappings (e.g., plurality of mappings 104) may include astarting location and a length, thus generating a related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104).

As discussed above, one example of such mappings may include but is notlimited to:

-   -   a first mapping <28/4> that defines an offset of 28 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 0111 within dictionary file 106;    -   a second mapping <44/4> that defines an offset of 44 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1011 within dictionary file 106;    -   a third mapping <36/4> that defines an offset of 36 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1001 within dictionary file 106; and    -   a fourth mapping <60/4> that defines an offset of 60 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1111 within dictionary file 106.

Accordingly and in this example, the related encoded data file (e.g.,related encoded data file 102) may include four mappings (e.g.,<28/4><44/4><36/4><60/4>).

When mapping 452 each of the plurality of file segments (e.g., pluralityof file segments 112) to a portion of a dictionary file (e.g.,dictionary file 106) to generate a plurality of mappings (e.g.,plurality of mappings 104), wherein each of the plurality of mappings(e.g., plurality of mappings 104) may include a starting location and alength, thus generating a related encoded data file (e.g., relatedencoded data file 102) based, at least in part, upon the plurality ofmappings (e.g., plurality of mappings 104), encoding/decoding process 10may: map 454 each of the plurality of file segments (e.g., plurality offile segments 112) to a portion of a dictionary file (e.g., dictionaryfile 106) to generate a plurality of mappings (e.g., plurality ofmappings 104), wherein each of the plurality of mappings (e.g.,plurality of mappings 104) may include a starting location and a length,thus generating a related encoded data file (e.g., related encoded datafile 102) at a first location (e.g., first location 114) based, at leastin part, upon the plurality of mappings (e.g., plurality of mappings104).

Encoding/decoding process 10 may transmit 456 the related encoded datafile (e.g., related encoded data file 102) from the first location(e.g., first location 114) to a second location (e.g., second location116). Examples of such a first location (e.g., first location 114) mayinclude but are not limited to: the location at which related encodeddata file 102 is generated or initially stored. Examples of such asecond location (e.g., second location 116) may include but are notlimited to: the location to which related encoded data file 102 istransmitted or subsequently stored.

Encoding/decoding process 10 may receive 458 a request (e.g., request160) to manipulate the unencoded data file (e.g., first data file 100),wherein the requested manipulations may concern one or more of: acomputation operation; a search operation; an append operation; asplitting operation; a joining operation; and a concatenating operation.In the example discussed above, the request (e.g., request 160) received256 concerned adding twenty-seven to first data file 100.

Encoding/decoding process 10 may process 460 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100). In the example discussed above, encoding/decoding process 10utilized plurality of mappings 104 and dictionary file 106 to generateresult 110, which was subsequently encoded to generate modified encodeddata file 108.

As discussed above, when processing 460 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100), encoding/decoding process 10 may: perform 462 a homomorphicencoding operation and/or a heteromorphic encoding operation.

When processing 460 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may:

-   -   process 464 the related encoded data file (e.g., related encoded        data file 102), in a byte-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);        and/or    -   process 466 the related encoded data file (e.g., related encoded        data file 102), in a bit-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above).

When processing 460 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may: process 468 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100) at the second location (e.g., second location 116).

The following discussion concerns a use case for encoding/decodingprocess 10 concerning encoded data in transit with short-range wireless.Referring also to FIG. 9 , encoding/decoding process 10 may process 500an unencoded data file (e.g., first data file 100) to identify aplurality of file segments (e.g., plurality of file segments 112).

As discussed in the example above, this first data file (e.g., firstdata file 100) is:

-   -   0111 1011 1001 1111

Accordingly and in this example, plurality of file segments 112 includesfour file segments, namely a) 0111, b) 1011, c) 1001 and d) 1111.

The unencoded data file (e.g., first data file 100) may be a dataset foruse with a short-range wireless communication platform (e.g.,short-range wireless communication platform 118). Examples of thisshort-range wireless communication platform (e.g., short-range wirelesscommunication platform 118) may include one or more of: a Bluetoothshort-range wireless communication platform; and a Wi-Fi short-rangewireless communication platform.

As is known in the art, Bluetooth is a short-range wireless technologystandard that is used for exchanging data between fixed and mobiledevices over short distances and building personal area networks (PANs).It employs UHF radio waves in the ISM bands, from 2.402 GHz to 2.48 GHz.It is mainly used as an alternative to wire connections, to exchangefiles between nearby portable devices and connect cell phones and musicplayers with wireless headphones. In the most widely used mode,transmission power is limited to 2.5 milliwatts, giving it a very shortrange of up to 10 metres (33 ft).

As is known in the art, Wi-Fi is a family of wireless network protocols,based on the IEEE 802.11 family of standards, which are commonly usedfor local area networking of devices and Internet access, allowingnearby digital devices to exchange data by radio waves. These are themost widely used computer networks in the world, used globally in homeand small office networks to link desktop and laptop computers, tabletcomputers, smartphones, smart TVs, printers, and smart speakers togetherand to a wireless router to connect them to the Internet, and inwireless access points in public places like coffee shops, hotels,libraries and airports to provide the public Internet access for mobiledevices.

Encoding/decoding process 10 may map 502 each of the plurality of filesegments (e.g., plurality of file segments 112) to a portion of adictionary file (e.g., dictionary file 106) to generate a plurality ofmappings (e.g., plurality of mappings 104), wherein each of theplurality of mappings (e.g., plurality of mappings 104) may include astarting location and a length, thus generating a related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104).

As discussed above, one example of such mappings may include but is notlimited to:

-   -   a first mapping <28/4> that defines an offset of 28 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 0111 within dictionary file 106;    -   a second mapping <44/4> that defines an offset of 44 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1011 within dictionary file 106;    -   a third mapping <36/4> that defines an offset of 36 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1001 within dictionary file 106; and    -   a fourth mapping <60/4> that defines an offset of 60 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1111 within dictionary file 106.

Accordingly and in this example, the related encoded data file (e.g.,related encoded data file 102) may include four mappings (e.g.,<28/4><44/4><36/4><60/4>).

Encoding/decoding process 10 may transmit 504 the related encoded datafile (e.g., related encoded data file 102) from a first location (e.g.,first location 114) to a second location (e.g., second location 116)using the short-range wireless communication platform (e.g., short-rangewireless communication platform 118). Examples of such a first location(e.g., first location 114) may include but are not limited to: thelocation at which related encoded data file 102 is generated orinitially stored. Examples of such a second location (e.g., secondlocation 116) may include but are not limited to: the location to whichrelated encoded data file 102 is transmitted or subsequently stored.

Encoding/decoding process 10 may receive 506 a request (e.g., request160) to manipulate the unencoded data file (e.g., first data file 100),wherein the requested manipulations may concern one or more of: acomputation operation; a search operation; an append operation; asplitting operation; a joining operation; and a concatenating operation.In the example discussed above, the request (e.g., request 160) received506 concerned adding twenty-seven to first data file 100.

Encoding/decoding process 10 may process 508 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100). In the example discussed above, encoding/decoding process 10utilized plurality of mappings 104 and dictionary file 106 to generateresult 110, which was subsequently encoded to generate modified encodeddata file 108.

As discussed above, when processing 508 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100), encoding/decoding process 10 may: perform 510 a homomorphicencoding operation and/or a heteromorphic encoding operation.

When processing 508 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may:

-   -   process 512 the related encoded data file (e.g., related encoded        data file 102), in a byte-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);        and/or    -   process 514 the related encoded data file (e.g., related encoded        data file 102), in a bit-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above).

When processing 508 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may: process 516 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100) at the second location (e.g., second location 116).

The following discussion concerns a use case for encoding/decodingprocess 10 concerning encoded data in transit with long-range wireless.Referring also to FIG. 10 , encoding/decoding process 10 may process 550an unencoded data file (e.g., first data file 100) to identify aplurality of file segments (e.g., plurality of file segments 112).

As discussed in the example above, this first data file (e.g., firstdata file 100) is:

-   -   0111 1011 1001 1111

Accordingly and in this example, plurality of file segments 112 includesfour file segments, namely a) 0111, b) 1011, c) 1001 and d) 1111.

The unencoded data file (e.g., first data file 100) may be a dataset foruse with a long-range wireless communication platform (e.g., long-rangewireless communication platform 120). Examples of this long-rangewireless communication platform (e.g., long-range wireless communicationplatform 120) may include one or more of: a cellular-based long-rangewireless communication platform; a microwave-based long-range wirelesscommunication platform; and a satellite-based long-range wirelesscommunication platform.

Encoding/decoding process 10 may map 552 each of the plurality of filesegments (e.g., plurality of file segments 112) to a portion of adictionary file (e.g., dictionary file 106) to generate a plurality ofmappings (e.g., plurality of mappings 104), wherein each of theplurality of mappings (e.g., plurality of mappings 104) may include astarting location and a length, thus generating a related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104).

As discussed above, one example of such mappings may include but is notlimited to:

-   -   a first mapping <28/4> that defines an offset of 28 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 0111 within dictionary file 106;    -   a second mapping <44/4> that defines an offset of 44 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1011 within dictionary file 106;    -   a third mapping <36/4> that defines an offset of 36 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1001 within dictionary file 106; and    -   a fourth mapping <60/4> that defines an offset of 60 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1111 within dictionary file 106.

Accordingly and in this example, the related encoded data file (e.g.,related encoded data file 102) may include four mappings (e.g.,<28/4><44/4><36/4><60/4>).

Encoding/decoding process 10 may transmit 554 the related encoded datafile (e.g., related encoded data file 102) from a first location (e.g.,first location 114) to a second location (e.g., second location 116)using the long-range wireless communication platform (e.g., long-rangewireless communication platform 120). Examples of such a first location(e.g., first location 114) may include but are not limited to: thelocation at which related encoded data file 102 is generated orinitially stored. Examples of such a second location (e.g., secondlocation 116) may include but are not limited to: the location to whichrelated encoded data file 102 is transmitted or subsequently stored.

Encoding/decoding process 10 may receive 556 a request (e.g., request160) to manipulate the unencoded data file (e.g., first data file 100),wherein the requested manipulations may concern one or more of: acomputation operation; a search operation; an append operation; asplitting operation; a joining operation; and a concatenating operation.In the example discussed above, the request (e.g., request 160) received556 concerned adding twenty-seven to first data file 100.

Encoding/decoding process 10 may process 558 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100). In the example discussed above, encoding/decoding process 10utilized plurality of mappings 104 and dictionary file 106 to generateresult 110, which was subsequently encoded to generate modified encodeddata file 108.

As discussed above, when processing 558 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100), encoding/decoding process 10 may: perform 560 a homomorphicencoding operation and/or a heteromorphic encoding operation.

When processing 558 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may:

-   -   process 562 the related encoded data file (e.g., related encoded        data file 102), in a byte-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);        and/or    -   process 564 the related encoded data file (e.g., related encoded        data file 102), in a bit-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above).

When processing 558 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may: process 566 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100) at the second location (e.g., second location 116).

The following discussion concerns a use case for encoding/decodingprocess 10 concerning encoded data in transit with direct coupling.Referring also to FIG. 11 , encoding/decoding process 10 may process 600an unencoded data file (e.g., first data file 100) to identify aplurality of file segments (e.g., plurality of file segments 112).

As discussed in the example above, this first data file (e.g., firstdata file 100) is:

-   -   0111 1011 1001 1111

Accordingly and in this example, plurality of file segments 112 includesfour file segments, namely a) 0111, b) 1011, c) 1001 and d) 1111.

The unencoded data file (e.g., first data file 100) may be a dataset foruse with a direct-coupled communication platform (e.g., direct-coupledcommunication platform 122). Examples of the direct-coupledcommunication platform (e.g., direct-coupled communication platform 122)may include one or more of: a copper-based direct-coupled communicationplatform (e.g., a platform that utilizes coaxial cables); a twistedpair-based direct-coupled communication platform (e.g., a platform thatutilizes twisted conductor cables); and an optical-based direct-coupledcommunication platform (e.g., a platform that utilizes fiber-opticcables).

Encoding/decoding process 10 may map 602 each of the plurality of filesegments (e.g., plurality of file segments 112) to a portion of adictionary file (e.g., dictionary file 106) to generate a plurality ofmappings (e.g., plurality of mappings 104), wherein each of theplurality of mappings (e.g., plurality of mappings 104) may include astarting location and a length, thus generating a related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104).

As discussed above, one example of such mappings may include but is notlimited to:

-   -   a first mapping <28/4> that defines an offset of 28 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 0111 within dictionary file 106;    -   a second mapping <44/4> that defines an offset of 44 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1011 within dictionary file 106;    -   a third mapping <36/4> that defines an offset of 36 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1001 within dictionary file 106; and    -   a fourth mapping <60/4> that defines an offset of 60 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1111 within dictionary file 106.

Accordingly and in this example, the related encoded data file (e.g.,related encoded data file 102) may include four mappings (e.g.,<28/4><44/4><36/4><60/4>).

Encoding/decoding process 10 may transmit 604 the related encoded datafile (e.g., related encoded data file 102) from a first location (e.g.,first location 114) to a second location (e.g., second location 116)using the direct-coupled communication platform (e.g., direct-coupledcommunication platform 122). Examples of such a first location (e.g.,first location 114) may include but are not limited to: the location atwhich related encoded data file 102 is generated or initially stored.Examples of such a second location (e.g., second location 116) mayinclude but are not limited to: the location to which related encodeddata file 102 is transmitted or subsequently stored.

Encoding/decoding process 10 may receive 606 a request (e.g., request160) to manipulate the unencoded data file (e.g., first data file 100),wherein the requested manipulations may concern one or more of: acomputation operation; a search operation; an append operation; asplitting operation; a joining operation; and a concatenating operation.In the example discussed above, the request (e.g., request 160) received606 concerned adding twenty-seven to first data file 100.

Encoding/decoding process 10 may process 608 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100). In the example discussed above, encoding/decoding process 10utilized plurality of mappings 104 and dictionary file 106 to generateresult 110, which was subsequently encoded to generate modified encodeddata file 108.

As discussed above, when processing 608 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100), encoding/decoding process 10 may: perform 610 a homomorphicencoding operation; and/or a heteromorphic encoding operation.

When processing 608 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may:

-   -   process 612 the related encoded data file (e.g., related encoded        data file 102), in a byte-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);        and/or    -   process 614 the related encoded data file (e.g., related encoded        data file 102), in a bit-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above).

When processing 608 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may: process 616 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100) at the second location (e.g., second location 116).

The following discussion concerns a use case for encoding/decodingprocess 10 concerning encoded data in transit with satellite-basedwireless. Referring also to FIG. 12 , encoding/decoding process 10 mayprocess 650 an unencoded data file (e.g., first data file 100) toidentify a plurality of file segments (e.g., plurality of file segments112).

As discussed in the example above, this first data file (e.g., firstdata file 100) is:

-   -   0111 1011 1001 1111

Accordingly and in this example, plurality of file segments 112 includesfour file segments, namely a) 0111, b) 1011, c) 1001 and d) 1111.

The unencoded data file (e.g., first data file 100) may be a dataset foruse with a satellite-based communication network (e.g., satellite-basedcommunication network 124). Examples of the satellite-basedcommunication network (e.g., satellite-based communication network 124)may include one or more of:

-   -   an internet communication network including one or more        satellites that is configured to e.g., provide internet        connectivity to individuals and businesses;    -   a mesh communication network including one or more satellites        that is configured to e.g., provide geographically-dispersed        connectivity to individuals and businesses;    -   a telephone communication network including one or more        satellites that is configured to e.g., provide telephone        connectivity to individuals and businesses;    -   an entertainment communication network including one or more        satellites that is configured to e.g., provide entertainment        connectivity to individuals and businesses;    -   a surface-to-satellite communication network including one or        more satellites that is configured to e.g., provide satellite        uplink connectivity to individuals and businesses;    -   a satellite-to-satellite communication network including one or        more satellites that is configured to e.g., provide satellite        interlink connectivity to individuals and businesses; and    -   a satellite-to-surface communication network including one or        more satellites that is configured to e.g., provide satellite        downlink connectivity to individuals and businesses.

Encoding/decoding process 10 may map 652 each of the plurality of filesegments (e.g., plurality of file segments 112) to a portion of adictionary file (e.g., dictionary file 106) to generate a plurality ofmappings (e.g., plurality of mappings 104), wherein each of theplurality of mappings (e.g., plurality of mappings 104) may include astarting location and a length, thus generating a related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104).

As discussed above, one example of such mappings may include but is notlimited to:

-   -   a first mapping <28/4> that defines an offset of 28 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 0111 within dictionary file 106;    -   a second mapping <44/4> that defines an offset of 44 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1011 within dictionary file 106;    -   a third mapping <36/4> that defines an offset of 36 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1001 within dictionary file 106; and    -   a fourth mapping <60/4> that defines an offset of 60 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1111 within dictionary file 106.

Accordingly and in this example, the related encoded data file (e.g.,related encoded data file 102) may include four mappings (e.g.,<28/4><44/4><36/4><60/4>).

Encoding/decoding process 10 may transmit 654 the related encoded datafile (e.g., related encoded data file 102) from a first location (e.g.,first location 114) to a second location (e.g., second location 116)using the satellite-based communication network (e.g., satellite-basedcommunication network 124). Examples of such a first location (e.g.,first location 114) may include but are not limited to: the location atwhich related encoded data file 102 is generated or initially stored.Examples of such a second location (e.g., second location 116) mayinclude but are not limited to: the location to which related encodeddata file 102 is transmitted or subsequently stored.

Encoding/decoding process 10 may receive 656 a request (e.g., request160) to manipulate the unencoded data file (e.g., first data file 100),wherein the requested manipulations may concern one or more of: acomputation operation; a search operation; an append operation; asplitting operation; a joining operation; and a concatenating operation.In the example discussed above, the request (e.g., request 160) received656 concerned adding twenty-seven to first data file 100.

Encoding/decoding process 10 may process 658 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100). In the example discussed above, encoding/decoding process 10utilized plurality of mappings 104 and dictionary file 106 to generateresult 110, which was subsequently encoded to generate modified encodeddata file 108.

As discussed above, when processing 658 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100), encoding/decoding process 10 may: perform 660 a homomorphicencoding operation and/or a heteromorphic encoding operation.

When processing 658 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may:

-   -   process 662 the related encoded data file (e.g., related encoded        data file 102), in a byte-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);        and/or    -   process 664 the related encoded data file (e.g., related encoded        data file 102), in a bit-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above).

When processing 658 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may: process 666 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100) at the second location (e.g., second location 116).

The following discussion concerns a use case for encoding/decodingprocess 10 concerning encoded data at rest. Referring also to FIG. 13 ,encoding/decoding process 10 may process 700 an unencoded data file(e.g., first data file 100) to identify a plurality of file segments(e.g., plurality of file segments 112).

As discussed in the example above, this first data file (e.g., firstdata file 100) is:

-   -   0111 1011 1001 1111

Accordingly and in this example, plurality of file segments 112 includesfour file segments, namely a) 0111, b) 1011, c) 1001 and d) 1111.

Encoding/decoding process 10 may map 702 each of the plurality of filesegments (e.g., plurality of file segments 112) to a portion of adictionary file (e.g., dictionary file 106) to generate a plurality ofmappings (e.g., plurality of mappings 104), wherein each of theplurality of mappings (e.g., plurality of mappings 104) may include astarting location and a length, thus generating a related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104).

As discussed above, one example of such mappings may include but is notlimited to:

-   -   a first mapping <28/4> that defines an offset of 28 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 0111 within dictionary file 106;    -   a second mapping <44/4> that defines an offset of 44 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1011 within dictionary file 106;    -   a third mapping <36/4> that defines an offset of 36 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1001 within dictionary file 106; and    -   a fourth mapping <60/4> that defines an offset of 60 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1111 within dictionary file 106.

Accordingly and in this example, the related encoded data file (e.g.,related encoded data file 102) may include four mappings (e.g.,<28/4><44/4><36/4><60/4>).

Examples of the related encoded data file (e.g., related encoded datafile 102) may include but are not limited to a standard (i.e.,unstructured) data storage file and a structured data storage file.

As is known in the art, structured data is data that adheres to apre-defined data model and is, therefore, straightforward to analyze.Structured data conforms to a tabular format with relationship betweenthe different rows and columns. Common examples of structured data areExcel files or SQL databases. Each of these have structured rows andcolumns that can be sorted. Structured data depends on the existence ofa data model—a model of how data can be stored, processed and accessed.Because of a data model, each field is discrete and can be accessedseparately or jointly along with data from other fields. This makesstructured data extremely powerful: it is possible to quickly aggregatedata from various locations in the database.

As in known in the art, unstructured data is information that eitherdoes not have a predefined data model or is not organized in apre-defined manner. Unstructured information is typically text-heavy,but may contain data such as dates, numbers, and facts as well. Thisresults in irregularities and ambiguities that make it difficult tounderstand using traditional programs as compared to data stored instructured databases. Common examples of unstructured data includeaudio, video files or No-SQL databases. The ability to store and processunstructured data has greatly grown in recent years, with many newtechnologies and tools coming to the market that are able to storespecialized types of unstructured data. MongoDB, for example, isoptimized to store documents. Apache Giraph, as an opposite example, isoptimized for storing relationships between nodes.

Encoding/decoding process 10 may store 704 the related encoded data file(e.g., related encoded data file 102) at a first location (e.g., firstlocation 114).

Encoding/decoding process 10 may receive 706 a request (e.g., request160) to manipulate the unencoded data file (e.g., first data file 100),wherein the requested manipulations may concern one or more of: acomputation operation; a search operation; an append operation; asplitting operation; a joining operation; and a concatenating operation.In the example discussed above, the request (e.g., request 160) received706 concerned adding twenty-seven to first data file 100.

Encoding/decoding process 10 may process 708 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100). In the example discussed above, encoding/decoding process 10utilized plurality of mappings 104 and dictionary file 106 to generateresult 110, which was subsequently encoded to generate modified encodeddata file 108.

As discussed above, when processing 708 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100), encoding/decoding process 10 may: perform 710 a homomorphicencoding operation; and/or a heteromorphic encoding operation.

When processing 708 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may:

-   -   process 712 the related encoded data file (e.g., related encoded        data file 102), in a byte-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);        and/or    -   process 714 the related encoded data file (e.g., related encoded        data file 102), in a bit-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above).

The following discussion concerns a use case for encoding/decodingprocess 10 concerning encoded data at rest in cloud-based storage.Referring also to FIG. 14 , encoding/decoding process 10 may process 750an unencoded data file (e.g., first data file 100) to identify aplurality of file segments (e.g., plurality of file segments 112).

As discussed in the example above, this first data file (e.g., firstdata file 100) is:

-   -   0111 1011 1001 1111

Accordingly and in this example, plurality of file segments 112 includesfour file segments, namely a) 0111, b) 1011, c) 1001 and d) 1111.

Encoding/decoding process 10 may map 752 each of the plurality of filesegments (e.g., plurality of file segments 112) to a portion of adictionary file (e.g., dictionary file 106) to generate a plurality ofmappings (e.g., plurality of mappings 104), wherein each of theplurality of mappings (e.g., plurality of mappings 104) may include astarting location and a length, thus generating a related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104).

As discussed above, one example of such mappings may include but is notlimited to:

-   -   a first mapping <28/4> that defines an offset of 28 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 0111 within dictionary file 106;    -   a second mapping <44/4> that defines an offset of 44 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1011 within dictionary file 106;    -   a third mapping <36/4> that defines an offset of 36 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1001 within dictionary file 106; and    -   a fourth mapping <60/4> that defines an offset of 60 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1111 within dictionary file 106.

Accordingly and in this example, the related encoded data file (e.g.,related encoded data file 102) may include four mappings (e.g.,<28/4><44/4><36/4><60/4>).

Encoding/decoding process 10 may store 754 the related encoded data file(e.g., related encoded data file 102) on a cloud-based storage platform(e.g., cloud-based storage platform 126), wherein this related encodeddata file (e.g., related encoded data file 102) may be generated on oroutside of the cloud-based storage platform (e.g., cloud-based storageplatform 126).

As is known in the art, cloud storage is a model of computer datastorage in which the digital data is stored in logical pools, said to beon “the cloud”. The physical storage spans multiple servers (sometimesin multiple locations), and the physical environment is typically ownedand managed by a hosting company. These cloud storage providers areresponsible for keeping the data available and accessible, and thephysical environment secured, protected, and running. People andorganizations buy or lease storage capacity from the providers to storeuser, organization, or application data. Examples of such providersinclude Microsoft™, Google™ and Amazon™.

Cloud storage services may be accessed through a co-located cloudcomputing service, a web service application programming interface (API)or by applications that use the API, such as cloud desktop storage, acloud storage gateway or Web-based content management systems.

Encoding/decoding process 10 may receive 756 a request (e.g., request160) to manipulate the unencoded data file (e.g., first data file 100),wherein the requested manipulations may concern one or more of: acomputation operation; a search operation; an append operation; asplitting operation; a joining operation; and a concatenating operation.In the example discussed above, the request (e.g., request 160) received756 concerned adding twenty-seven to first data file 100.

Encoding/decoding process 10 may process 758 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100). In the example discussed above, encoding/decoding process 10utilized plurality of mappings 104 and dictionary file 106 to generateresult 110, which was subsequently encoded to generate modified encodeddata file 108.

As discussed above, when processing 758 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100), encoding/decoding process 10 may: perform 760 a homomorphicencoding operation; and/or a heteromorphic encoding operation.

When processing 758 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may:

-   -   process 762 the related encoded data file (e.g., related encoded        data file 102), in a byte-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);        and/or    -   process 764 the related encoded data file (e.g., related encoded        data file 102), in a bit-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above).

The following discussion concerns a use case for encoding/decodingprocess 10 concerning encoded data in process. Referring also to FIG. 15, encoding/decoding process 10 may process 800 an unencoded data file(e.g., first data file 100) to identify a plurality of file segments(e.g., plurality of file segments 112).

As discussed in the example above, this first data file (e.g., firstdata file 100) is:

-   -   0111 1011 1001 1111

Accordingly and in this example, plurality of file segments 112 includesfour file segments, namely a) 0111, b) 1011, c) 1001 and d) 1111.

Encoding/decoding process 10 may map 802 each of the plurality of filesegments (e.g., plurality of file segments 112) to a portion of adictionary file (e.g., dictionary file 106) to generate a plurality ofmappings (e.g., plurality of mappings 104) that each include a startinglocation and a length, thus generating a related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104).

As discussed above, one example of such mappings may include but is notlimited to:

-   -   a first mapping <28/4> that defines an offset of 28 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 0111 within dictionary file 106;    -   a second mapping <44/4> that defines an offset of 44 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1011 within dictionary file 106;    -   a third mapping <36/4> that defines an offset of 36 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1001 within dictionary file 106; and    -   a fourth mapping <60/4> that defines an offset of 60 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1111 within dictionary file 106.

Accordingly and in this example, the related encoded data file (e.g.,related encoded data file 102) may include four mappings (e.g.,<28/4><44/4><36/4><60/4>).

This related encoded data file (e.g., related encoded data file 102) maybe more easily processable and/or require less computational overheadthan the unencoded data file (e.g., first data file 100). As discussedabove, related encoded data file 102 may be a compressed data file,resulting in related encoded data file 102 being smaller in size thanfirst data file 100. Accordingly, related encoded data file 102 may bemore easily processable as the transferring/storing/processing ofrelated encoded data file 102 may require less computational overheaddue to this reduced size.

Encoding/decoding process 10 may receive 804 a request (e.g., request160) to manipulate the unencoded data file (e.g., first data file 100),wherein the requested manipulations may concern one or more of: acomputation operation; a search operation; an append operation; asplitting operation; a joining operation; and a concatenating operation.In the example discussed above, the request (e.g., request 160) received804 concerned adding twenty-seven to first data file 100.

Encoding/decoding process 10 may process 806 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100). In the example discussed above, encoding/decoding process 10utilized plurality of mappings 104 and dictionary file 106 to generateresult 110, which was subsequently encoded to generate modified encodeddata file 108.

As discussed above, when processing 806 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100), encoding/decoding process 10 may: perform 808 a homomorphicencoding operation and/or a heteromorphic encoding operation.

When processing 806 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may:

-   -   process 810 the related encoded data file (e.g., related encoded        data file 102), in a byte-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);        and/or    -   process 812 the related encoded data file (e.g., related encoded        data file 102), in a bit-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above).

The following discussion concerns a use case for encoding/decodingprocess 10 concerning encoded data in process for machine learning.Referring also to FIG. 16 , encoding/decoding process 10 may process 850an unencoded data file (e.g., first data file 100) to identify aplurality of file segments (e.g., plurality of file segments 112). Theunencoded data file (e.g., first data file 100) may be a dataset for usewith an ML process (e.g., machine learning process 128).

As discussed in the example above, this first data file (e.g., firstdata file 100) is:

-   -   0111 1011 1001 1111

Accordingly and in this example, plurality of file segments 112 includesfour file segments, namely a) 0111, b) 1011, c) 1001 and d) 1111.

As is known in the art, machine learning (ML) is a field of inquirydevoted to understanding and building methods that ‘learn’, that is,methods that leverage data to improve performance on some set of tasks.It is seen as a part of artificial intelligence. Machine learningalgorithms build a model based on sample data, known as training data,in order to make predictions or decisions without being explicitlyprogrammed to do so. Machine learning algorithms are used in a widevariety of applications, such as in medicine, email filtering, speechrecognition, and computer vision, where it is difficult or unfeasible todevelop conventional algorithms to perform the needed tasks.

A subset of machine learning is closely related to computationalstatistics, which focuses on making predictions using computers, but notall machine learning is statistical learning. The study of mathematicaloptimization delivers methods, theory and application domains to thefield of machine learning. Data mining is a related field of study,focusing on exploratory data analysis through unsupervised learning.Some implementations of machine learning use data and neural networks ina way that mimics the working of a biological brain. In its applicationacross business problems, machine learning is also referred to aspredictive analytics.

As is known in the art, a machine learning system or model may generallyinclude an algorithm or combination of algorithms that has been trainedto recognize certain types of patterns. For example, machine learningapproaches may be generally divided into three categories, depending onthe nature of the signal available: supervised learning, unsupervisedlearning, and reinforcement learning. As is known in the art, supervisedlearning may include presenting a computing device with example inputsand their desired outputs, given by a “teacher”, where the goal is tolearn a general rule that maps inputs to outputs. With unsupervisedlearning, no labels are given to the learning algorithm, leaving it onits own to find structure in its input. Unsupervised learning can be agoal in itself (discovering hidden patterns in data) or a means towardsan end (feature learning). As is known in the art, reinforcementlearning may generally include a computing device interacting in adynamic environment in which it must perform a certain goal (such asdriving a vehicle or playing a game against an opponent). As the machinelearning system navigates its problem space, the machine learning systemis provided feedback that's analogous to rewards, which it tries tomaximize. While three examples of machine learning approaches have beenprovided, it will be appreciated that other machine learning approachesare possible within the scope of the present disclosure.

Encoding/decoding process 10 may map 852 each of the plurality of filesegments (e.g., plurality of file segments 112) to a portion of adictionary file (e.g., dictionary file 106) to generate a plurality ofmappings (e.g., plurality of mappings 104) that each include a startinglocation and a length, thus generating a related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104).

As discussed above, one example of such mappings may include but is notlimited to:

-   -   a first mapping <28/4> that defines an offset of 28 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 0111 within    -   a second mapping <44/4> that defines an offset of 44 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1011 within dictionary file 106;    -   a third mapping <36/4> that defines an offset of 36 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1001 within dictionary file 106; and    -   a fourth mapping <60/4> that defines an offset of 60 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1111 within dictionary file 106.

Accordingly and in this example, the related encoded data file (e.g.,related encoded data file 102) may include four mappings (e.g.,<28/4><44/4><36/4><60/4>). One example of this related encoded data file(e.g., related encoded data file 102) may include a massive data set foruse with the ML process (e.g., machine learning process 128.

This related encoded data file (e.g., related encoded data file 102) maybe more easily processable and/or require less computational overheadthan the unencoded data file (e.g., first data file 100). As discussedabove, related encoded data file 102 may be a compressed data file,resulting in related encoded data file 102 being smaller in size thanfirst data file 100. Accordingly, related encoded data file 102 may bemore easily processable as the transferring/storing/processing ofrelated encoded data file 102 may require less computational overheaddue to this reduced size.

Encoding/decoding process 10 may receive 854 a request (e.g., request160) to manipulate the unencoded data file (e.g., first data file 100)from the ML process (e.g., machine learning process 128), wherein therequested manipulations may concern one or more of: a computationoperation; a search operation; an append operation; a splittingoperation; a joining operation; and a concatenating operation. In theexample discussed above, the request (e.g., request 160) received 854concerned adding twenty-seven to first data file 100.

Encoding/decoding process 10 may process 856 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100). In the example discussed above, encoding/decoding process 10utilized plurality of mappings 104 and dictionary file 106 to generateresult 110, which was subsequently encoded to generate modified encodeddata file 108.

As discussed above, when processing 856 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100), encoding/decoding process 10 may: perform 858 a homomorphicencoding operation and/or a heteromorphic encoding operation.

When processing 856 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may:

-   -   process 860 the related encoded data file (e.g., related encoded        data file 102), in a byte-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);        and/or    -   process 862 the related encoded data file (e.g., related encoded        data file 102), in a bit-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above).

The following discussion concerns a use case for encoding/decodingprocess 10 concerning encoded data in process for electronic healthrecords. Referring also to FIG. 17 , encoding/decoding process 10 mayprocess 900 an unencoded data file (e.g., first data file 100) toidentify a plurality of file segments (e.g., plurality of file segments112). The unencoded data file (e.g., first data file 100) may be adataset for use with an EHR process (e.g., EHR process 130).

As discussed in the example above, this first data file (e.g., firstdata file 100) is:

-   -   0111 1011 1001 1111

Accordingly and in this example, plurality of file segments 112 includesfour file segments, namely a) 0111, b) 1011, c) 1001 and d) 1111.

As is known in the art, an electronic health record (EHR) is thesystematized collection of patient and population electronically storedhealth information in a digital format. These records can be sharedacross different health care settings. Records are shared throughnetwork-connected, enterprise-wide information systems or otherinformation networks and exchanges. EHRs may include a range of data,including demographics, medical history, medication and allergies,immunization status, laboratory test results, radiology images, vitalsigns, personal statistics like age and weight, and billing information.

Encoding/decoding process 10 may map 902 each of the plurality of filesegments (e.g., plurality of file segments 112) to a portion of adictionary file (e.g., dictionary file 106) to generate a plurality ofmappings (e.g., plurality of mappings 104) that each include a startinglocation and a length, thus generating a related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104).

As discussed above, one example of such mappings may include but is notlimited to:

-   -   a first mapping <28/4> that defines an offset of 28 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 0111 within dictionary file 106;    -   a second mapping <44/4> that defines an offset of 44 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1011 within dictionary file 106;    -   a third mapping <36/4> that defines an offset of 36 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1001 within dictionary file 106; and    -   a fourth mapping <60/4> that defines an offset of 60 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1111 within dictionary file 106.

Accordingly and in this example, the related encoded data file (e.g.,related encoded data file 102) may include four mappings (e.g.,<28/4><44/4><36/4><60/4>). One example of this related encoded data file(e.g., related encoded data file 102) may include medical health recordsfor use with the EHR process (e.g., EHR process 130).

This related encoded data file (e.g., related encoded data file 102) maybe more easily processable and/or require less computational overheadthan the unencoded data file (e.g., first data file 100). As discussedabove, related encoded data file 102 may be a compressed data file,resulting in related encoded data file 102 being smaller in size thanfirst data file 100. Accordingly, related encoded data file 102 may bemore easily processable as the transferring/storing/processing ofrelated encoded data file 102 may require less computational overheaddue to this reduced size.

Encoding/decoding process 10 may receive 904 a request (e.g., request160) to manipulate the unencoded data file (e.g., first data file 100)from the EHR process (e.g., EHR process 130), wherein the requestedmanipulations may concern one or more of: a computation operation; asearch operation; an append operation; a splitting operation; a joiningoperation; and a concatenating operation. In the example discussedabove, the request (e.g., request 160) received 904 concerned addingtwenty-seven to first data file 100.

Encoding/decoding process 10 may process 906 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100). In the example discussed above, encoding/decoding process 10utilized plurality of mappings 104 and dictionary file 106 to generateresult 110, which was subsequently encoded to generate modified encodeddata file 108.

As discussed above, when processing 906 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100), encoding/decoding process 10 may: perform 908 a homomorphicencoding operation and/or a heteromorphic encoding operation.

When processing 906 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may:

-   -   process 910 the related encoded data file (e.g., related encoded        data file 102), in a byte-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);        and/or    -   process 912 the related encoded data file (e.g., related encoded        data file 102), in a bit-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above).

The following discussion concerns a use case for encoding/decodingprocess 10 concerning encoded data in process for blockchain. Referringalso to FIG. 18 , encoding/decoding process 10 may process 950 anunencoded data file (e.g., first data file 100) to identify a pluralityof file segments (e.g., plurality of file segments 112). The unencodeddata file (e.g., first data file 100) may be a dataset for use with ablockchain process (e.g., blockchain process 132).

As discussed in the example above, this first data file (e.g., firstdata file 100) is:

-   -   0111 1011 1001 1111

Accordingly and in this example, plurality of file segments 112 includesfour file segments, namely a) 0111, b) 1011, c) 1001 and d) 1111.

As is known in the art, a blockchain is a type of distributed ledgertechnology (DLT) that consists of growing list of records, calledblocks, that are securely linked together using cryptography. Each blockcontains a cryptographic hash of the previous block, a timestamp, andtransaction data (generally represented as a Merkle tree, where datanodes are represented by leaves). The timestamp proves that thetransaction data existed when the block was created. Since each blockcontains information about the block previous to it, they effectivelyform a chain (compare linked list data structure), with each additionalblock linking to the ones before it. Consequently, blockchaintransactions are irreversible in that, once they are recorded, the datain any given block cannot be altered retroactively without altering allsubsequent blocks.

Encoding/decoding process 10 may map 952 each of the plurality of filesegments (e.g., plurality of file segments 112) to a portion of adictionary file (e.g., dictionary file 106) to generate a plurality ofmappings (e.g., plurality of mappings 104) that each include a startinglocation and a length, thus generating a related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104).

As discussed above, one example of such mappings may include but is notlimited to:

-   -   a first mapping <28/4> that defines an offset of 28 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 0111 within dictionary file 106;    -   a second mapping <44/4> that defines an offset of 44 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1011 within dictionary file 106;    -   a third mapping <36/4> that defines an offset of 36 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1001 within dictionary file 106; and    -   a fourth mapping <60/4> that defines an offset of 60 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1111 within dictionary file 106.

Accordingly and in this example, the related encoded data file (e.g.,related encoded data file 102) may include four mappings (e.g.,<28/4><44/4><36/4><60/4>). One example of the related encoded data file(e.g., related encoded data file 102) may include a distributed ledgerfor use with the blockchain process (e.g., blockchain process 132)

This related encoded data file (e.g., related encoded data file 102) maybe more easily processable and/or require less computational overheadthan the unencoded data file (e.g., first data file 100). As discussedabove, related encoded data file 102 may be a compressed data file,resulting in related encoded data file 102 being smaller in size thanfirst data file 100. Accordingly, related encoded data file 102 may bemore easily processable as the transferring/storing/processing ofrelated encoded data file 102 may require less computational overheaddue to this reduced size.

Encoding/decoding process 10 may receive 954 a request (e.g., request160) to manipulate the unencoded data file (e.g., first data file 100)from the blockchain process (e.g., blockchain process 132), wherein therequested manipulations may concern one or more of: a computationoperation; a search operation; an append operation; a splittingoperation; a joining operation; and a concatenating operation. In theexample discussed above, the request (e.g., request 160) received 954concerned adding twenty-seven to first data file 100.

Encoding/decoding process 10 may process 956 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100). In the example discussed above, encoding/decoding process 10utilized plurality of mappings 104 and dictionary file 106 to generateresult 110, which was subsequently encoded to generate modified encodeddata file 108.

As discussed above, when processing 956 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100), encoding/decoding process 10 may: perform 958 a homomorphicencoding operation and/or a heteromorphic encoding operation.

When processing 956 the related encoded data file (e.g., related encodeddata file 102) based, at least in part, upon the plurality of mappings(e.g., plurality of mappings 104) and the dictionary file (e.g.,dictionary file 106) to generate a modified encoded data file (e.g.,modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may:

-   -   process 960 the related encoded data file (e.g., related encoded        data file 102), in a byte-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above);        and/or    -   process 962 the related encoded data file (e.g., related encoded        data file 102), in a bit-wise fashion to generate modified        encoded data file 108 (e.g., in the manner described above).

The following discussion concerns a use case for encoding/decodingprocess 10 concerning encoded data in process for disaster recovery.Referring also to FIG. 19 , encoding/decoding process 10 may process1000 an unencoded data file (e.g., first data file 100) to identify aplurality of file segments (e.g., plurality of file segments 112). Theunencoded data file (e.g., first data file 100) may be a dataset for usewith a disaster recovery process (e.g., disaster recovery process 134).

As discussed in the example above, this first data file (e.g., firstdata file 100) is:

-   -   0111 1011 1001 1111

Accordingly and in this example, plurality of file segments 112 includesfour file segments, namely a) 0111, b) 1011, c) 1001 and d) 1111.

Disaster recovery involves a set of policies, tools, and procedures toenable the recovery or continuation of vital technology infrastructureand systems following a natural or human-induced disaster. Disasterrecovery focuses on the information technology (IT) or technologysystems supporting critical business functions as opposed to businesscontinuity. This involves keeping all essential aspects of a businessfunctioning despite significant disruptive events; it can therefore beconsidered a subset of business continuity. Disaster recovery assumesthat the primary site is not recoverable for some time and represents aprocess of restoring data and services to a secondary survived site,which is opposite to restoring it back to its original place.

Encoding/decoding process 10 may map 1002 each of the plurality of filesegments (e.g., plurality of file segments 112) to a portion of adictionary file (e.g., dictionary file 106) to generate a plurality ofmappings (e.g., plurality of mappings 104) that each include a startinglocation and a length, thus generating a related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104).

As discussed above, one example of such mappings may include but is notlimited to:

-   -   a first mapping <28/4> that defines an offset of 28 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 0111 within dictionary file 106;    -   a second mapping <44/4> that defines an offset of 44 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1011 within dictionary file 106;    -   a third mapping <36/4> that defines an offset of 36 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1001 within dictionary file 106; and    -   a fourth mapping <60/4> that defines an offset of 60 bits from        the beginning of dictionary file 106 and a read length of 4        bits, thus mapping to 1111 within dictionary file 106.

Accordingly and in this example, the related encoded data file (e.g.,related encoded data file 102) may include four mappings (e.g.,<28/4><44/4><36/4><60/4>). One example of the related encoded data file(e.g., related encoded data file 102) may include a recovery data setfor use with the disaster recovery process (e.g., disaster recoveryprocess 134).

This related encoded data file (e.g., related encoded data file 102) maybe more easily processable and/or require less computational overheadthan the unencoded data file (e.g., first data file 100). As discussedabove, related encoded data file 102 may be a compressed data file,resulting in related encoded data file 102 being smaller in size thanfirst data file 100. Accordingly, related encoded data file 102 may bemore easily processable as the transferring/storing/processing ofrelated encoded data file 102 may require less computational overheaddue to this reduced size.

Encoding/decoding process 10 may receive 1004 a request (e.g., request160) to manipulate the unencoded data file (e.g., first data file 100)from the disaster recovery process (e.g., disaster recovery process134), wherein the requested manipulations may concern one or more of: acomputation operation; a search operation; an append operation; asplitting operation; a joining operation; and a concatenating operation.In the example discussed above, the request (e.g., request 160) received1004 concerned adding twenty-seven to first data file 100.

Encoding/decoding process 10 may process 1006 the related encoded datafile (e.g., related encoded data file 102) based, at least in part, uponthe plurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100). In the example discussed above, encoding/decoding process 10utilized plurality of mappings 104 and dictionary file 106 to generateresult 110, which was subsequently encoded to generate modified encodeddata file 108.

As discussed above, when processing 1006 the related encoded data file(e.g., related encoded data file 102) based, at least in part, upon theplurality of mappings (e.g., plurality of mappings 104) and thedictionary file (e.g., dictionary file 106) to generate a modifiedencoded data file (e.g., modified encoded data file 108) that representsthe requested manipulations of the unencoded data file (e.g., first datafile 100), encoding/decoding process 10 may: perform 1008 a homomorphicencoding operation and/or a heteromorphic encoding operation.

When processing 1006 the related encoded data file (e.g., relatedencoded data file 102) based, at least in part, upon the plurality ofmappings (e.g., plurality of mappings 104) and the dictionary file(e.g., dictionary file 106) to generate a modified encoded data file(e.g., modified encoded data file 108) that represents the requestedmanipulations of the unencoded data file (e.g., first data file 100),encoding/decoding process 10 may:

-   -   process 1010 the related encoded data file (e.g., related        encoded data file 102), in a byte-wise fashion to generate        modified encoded data file 108 (e.g., in the manner described        above); and/or    -   process 1012 the related encoded data file (e.g., related        encoded data file 102), in a bit-wise fashion to generate        modified encoded data file 108 (e.g., in the manner described        above).

General

As will be appreciated by one skilled in the art, the present disclosuremay be embodied as a method, a system, or a computer program product.Accordingly, the present disclosure may take the form of an entirelyhardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc.) or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module” or “system.” Furthermore,the present disclosure may take the form of a computer program producton a computer-usable storage medium having computer-usable program codeembodied in the medium.

Any suitable computer usable or computer readable medium may beutilized. The computer-usable or computer-readable medium may be, forexample but not limited to, an electronic, magnetic, optical,electromagnetic, infrared, or semiconductor system, apparatus, device,or propagation medium. More specific examples (a non-exhaustive list) ofthe computer-readable medium may include the following: an electricalconnection having one or more wires, a portable computer diskette, ahard disk, a random access memory (RAM), a read-only memory (ROM), anerasable programmable read-only memory (EPROM or Flash memory), anoptical fiber, a portable compact disc read-only memory (CD-ROM), anoptical storage device, a transmission media such as those supportingthe Internet or an intranet, or a magnetic storage device. Thecomputer-usable or computer-readable medium may also be paper or anothersuitable medium upon which the program is printed, as the program can beelectronically captured, via, for instance, optical scanning of thepaper or other medium, then compiled, interpreted, or otherwiseprocessed in a suitable manner, if necessary, and then stored in acomputer memory. In the context of this document, a computer-usable orcomputer-readable medium may be any medium that can contain, store,communicate, propagate, or transport the program for use by or inconnection with the instruction execution system, apparatus, or device.The computer-usable medium may include a propagated data signal with thecomputer-usable program code embodied therewith, either in baseband oras part of a carrier wave. The computer usable program code may betransmitted using any appropriate medium, including but not limited tothe Internet, wireline, optical fiber cable, RF, etc.

Computer program code for carrying out operations of the presentdisclosure may be written in an object oriented programming languagesuch as Java, Smalltalk, C++ or the like. However, the computer programcode for carrying out operations of the present disclosure may also bewritten in conventional procedural programming languages, such as the“C” programming language or similar programming languages. The programcode may execute entirely on the user's computer, partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through a local area network/a widearea network/the Internet (e.g., network 14).

The present disclosure is described with reference to flowchartillustrations and/or block diagrams of methods, apparatus (systems) andcomputer program products according to embodiments of the disclosure. Itwill be understood that each block of the flowchart illustrations and/orblock diagrams, and combinations of blocks in the flowchartillustrations and/or block diagrams, may be implemented by computerprogram instructions. These computer program instructions may beprovided to a processor of a general purpose computer/special purposecomputer/other programmable data processing apparatus, such that theinstructions, which execute via the processor of the computer or otherprogrammable data processing apparatus, create means for implementingthe functions/acts specified in the flowchart and/or block diagram blockor blocks.

These computer program instructions may also be stored in acomputer-readable memory that may direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instruction meanswhich implement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide steps for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

The flowcharts and block diagrams in the figures may illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present disclosure. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustrations,and combinations of blocks in the block diagrams and/or flowchartillustrations, may be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the disclosure.As used herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present disclosure has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the disclosure in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the disclosure. Theembodiment was chosen and described in order to best explain theprinciples of the disclosure and the practical application, and toenable others of ordinary skill in the art to understand the disclosurefor various embodiments with various modifications as are suited to theparticular use contemplated.

A number of implementations have been described. Having thus describedthe disclosure of the present application in detail and by reference toembodiments thereof, it will be apparent that modifications andvariations are possible without departing from the scope of thedisclosure defined in the appended claims.

What is claimed is:
 1. A computer-implemented method, executed on acomputing device comprising: encoding an unencoded data file to generatea related encoded data file based upon a plurality of mappings to aplurality of portions of a dictionary file; receiving a request tomanipulate the unencoded data file, wherein the request would require afirst sequence of operations to be performed on the unencoded data file;and processing the related encoded data file based, at least in part,upon the plurality of mappings and the dictionary file to generate amodified encoded data file, wherein processing the related encoded datafile includes performing the first sequence of operations on the encodeddata file to achieve the requested manipulations of the unencoded datafile.
 2. The computer-implemented method of claim 1 wherein processingthe related encoded data file based, at least in part, upon theplurality of mappings and the dictionary file to generate a modifiedencoded data file includes: performing a homomorphic encoding operation.3. The computer-implemented method of claim 1 wherein the dictionaryfile includes a plurality of discrete entries.
 4. Thecomputer-implemented method of claim 3 wherein processing the relatedencoded data file based, at least in part, upon the plurality ofmappings and the dictionary file to generate a modified encoded datafile includes: processing the related encoded data file, in a byte-wisefashion, based upon the plurality of mappings and the dictionary file togenerate a modified encoded data file.
 5. The computer-implementedmethod of claim 1 wherein the dictionary file includes a plurality ofconcatenated entries.
 6. The computer-implemented method of claim 5wherein processing the related encoded data file based, at least inpart, upon the plurality of mappings and the dictionary file to generatea modified encoded data file includes: processing the related encodeddata file, in a bit-wise fashion, based upon the plurality of mappingsand the dictionary file to generate a modified encoded data file.
 7. Thecomputer-implemented method of claim 1 wherein processing the relatedencoded data file based, at least in part, upon the plurality ofmappings and the dictionary file to generate a modified encoded datafile includes: processing the related encoded data file, utilizing asampling window, based upon the plurality of mappings and the dictionaryfile to generate a modified encoded data file.
 8. Thecomputer-implemented method of claim 1 wherein the requestedmanipulations concern one or more of: a computation operation; a searchoperation; an append operation; a splitting operation; a joiningoperation; and a concatenating operation.
 9. The computer-implementedmethod of claim 1 wherein encoding an unencoded data file to generate arelated encoded data file based upon a plurality of mappings to aplurality of portions of a dictionary file includes: compressing anunencoded data file to generate a related encoded data file.
 10. Thecomputer-implemented method of claim 1 wherein encoding an unencodeddata file to generate a related encoded data file based upon a pluralityof mappings to a plurality of portions of a dictionary file includes:encrypting an unencoded data file to generate a related encoded datafile.
 11. A computer program product residing on a computer readablemedium having a plurality of instructions stored thereon which, whenexecuted by a processor, cause the processor to perform operationscomprising: encoding an unencoded data file to generate a relatedencoded data file based upon a plurality of mappings to a plurality ofportions of a dictionary file; receiving a request to manipulate theunencoded data file, wherein the request would require a first sequenceof operations to be performed on the unencoded data file; and processingthe related encoded data file based, at least in part, upon theplurality of mappings and the dictionary file to generate a modifiedencoded data file, wherein processing the related encoded data fileincludes performing the first sequence of operations on the encoded datafile to achieve the requested manipulations of the unencoded data file.12. The computer program product of claim 11 wherein processing therelated encoded data file based, at least in part, upon the plurality ofmappings and the dictionary file to generate a modified encoded datafile includes: performing a homomorphic encoding operation.
 13. Thecomputer program product of claim 11 wherein the dictionary fileincludes a plurality of discrete entries.
 14. The computer programproduct of claim 13 wherein processing the related encoded data filebased, at least in part, upon the plurality of mappings and thedictionary file to generate a modified encoded data file includes:processing the related encoded data file, in a byte-wise fashion, basedupon the plurality of mappings and the dictionary file to generate amodified encoded data file.
 15. The computer program product of claim 11wherein the dictionary file includes a plurality of concatenatedentries.
 16. The computer program product of claim 15 wherein processingthe related encoded data file based, at least in part, upon theplurality of mappings and the dictionary file to generate a modifiedencoded data file includes: processing the related encoded data file, ina bit-wise fashion, based upon the plurality of mappings and thedictionary file to generate a modified encoded data file.
 17. Thecomputer program product of claim 11 wherein processing the relatedencoded data file based, at least in part, upon the plurality ofmappings and the dictionary file to generate a modified encoded datafile includes: processing the related encoded data file, utilizing asampling window, based upon the plurality of mappings and the dictionaryfile to generate a modified encoded data file.
 18. The computer programproduct of claim 11 wherein the requested manipulations concern one ormore of: a computation operation; a search operation; an appendoperation; a splitting operation; a joining operation; and aconcatenating operation.
 19. The computer program product of claim 11wherein encoding an unencoded data file to generate a related encodeddata file based upon a plurality of mappings to a plurality of portionsof a dictionary file includes: compressing an unencoded data file togenerate a related encoded data file.
 20. The computer program productof claim 11 wherein encoding an unencoded data file to generate arelated encoded data file based upon a plurality of mappings to aplurality of portions of a dictionary file includes: encrypting anunencoded data file to generate a related encoded data file.
 21. Acomputing system including a processor and memory configured to performoperations comprising: encoding an unencoded data file to generate arelated encoded data file based upon a plurality of mappings to aplurality of portions of a dictionary file; receiving a request tomanipulate the unencoded data file, wherein the request would require afirst sequence of operations to be performed on the unencoded data file;and processing the related encoded data file based, at least in part,upon the plurality of mappings and the dictionary file to generate amodified encoded data file, wherein processing the related encoded datafile includes performing the first sequence of operations on the encodeddata file to achieve the requested manipulations of the unencoded datafile.
 22. The computing system of claim 21 wherein processing therelated encoded data file based, at least in part, upon the plurality ofmappings and the dictionary file to generate a modified encoded datafile includes: performing a homomorphic encoding operation.
 23. Thecomputing system of claim 21 wherein the dictionary file includes aplurality of discrete entries.
 24. The computing system of claim 23wherein processing the related encoded data file based, at least inpart, upon the plurality of mappings and the dictionary file to generatea modified encoded data file includes: processing the related encodeddata file, in a byte-wise fashion, based upon the plurality of mappingsand the dictionary file to generate a modified encoded data file. 25.The computing system of claim 21 wherein the dictionary file includes aplurality of concatenated entries.
 26. The computing system of claim 25wherein processing the related encoded data file based, at least inpart, upon the plurality of mappings and the dictionary file to generatea modified encoded data file includes: processing the related encodeddata file, in a bit-wise fashion, based upon the plurality of mappingsand the dictionary file to generate a modified encoded data file. 27.The computing system of claim 21 wherein processing the related encodeddata file based, at least in part, upon the plurality of mappings andthe dictionary file to generate a modified encoded data file includes:processing the related encoded data file, utilizing a sampling window,based upon the plurality of mappings and the dictionary file to generatea modified encoded data file.
 28. The computing system of claim 21wherein the requested manipulations concern one or more of: acomputation operation; a search operation; an append operation; asplitting operation; a joining operation; and a concatenating operation.29. The computing system of claim 21 wherein encoding an unencoded datafile to generate a related encoded data file based upon a plurality ofmappings to a plurality of portions of a dictionary file includes:compressing an unencoded data file to generate a related encoded datafile.
 30. The computing system of claim 21 wherein encoding an unencodeddata file to generate a related encoded data file based upon a pluralityof mappings to a plurality of portions of a dictionary file includes:encrypting an unencoded data file to generate a related encoded datafile.